#include "controller.h"

// 构造函数的实现
Controller::Controller(QObject *parent) : QObject(parent) {
    // 映射指令到处理函数
    commandMap["开灯"] = [this]() { emit Light_ON(); };
    commandMap["关灯"] = [this]() { emit Light_OFF(); };
    commandMap["开空调"] = [this]() { emit AC_ON(); };
    commandMap["关空调"] = [this]() { emit AC_OFF(); };
    commandMap["播放音乐"] = [this]() { emit Music_ON(); };
    commandMap["关音乐"] = [this]() { emit Music_OFF(); };
}

// 方法用于指令分发
void Controller::instructDistribution(QString commend) {
    // 使用正则表达式去除标点符号和空格
    QRegularExpression re("[\\p{P}\\p{Zs}]");
    commend.remove(re);

    // 查找并执行对应的命令
    auto it = commandMap.find(commend);
    if (it != commandMap.end()) {
        it.value()(); // 执行对应的函数
    } else {
        qDebug() << "未识别指令:" << commend;
    }
}
